## 构建阶段

# 设置参数
ARG GO_VERSION=1.17.3
ARG BASE_DISTRO="alpine"
ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DISTRO}"

# 指定基础构建镜像为golang:1.17.3-alpine
FROM ${GOLANG_IMAGE} AS builder

# 设置环境变量
# ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn,direct

# 实际构建的工作目录
WORKDIR /app/

# 复制项目全部文件到镜像的工作目录/app/中
COPY . .

# 编译成可执行文件
RUN go mod tidy && go build -o leeframe ./main.go


## 部署阶段

# 指定基础运行镜像为alpine:latest
FROM alpine:latest

# 实际部署的工作目录
WORKDIR /appdata/leeframe/

# 复制可执行文件
COPY --from=builder /app/leeframe ./
COPY ./build/wait ./build/wait

# 复制配置文件
COPY ./configs/mode_configs.toml.example ./configs/dev_configs.toml

# 安装bash
RUN apk add --no-cache --upgrade bash

# 默认端口
EXPOSE 8000

# 默认启动命令
CMD ./build/wait && ./leeframe --env=dev --Server.HttpPort=8000 --Mysql.Host=mysql:3306
